This article needs additional citations for verification. (June 2013) |
![]() | |
Paradigm | multi-paradigm: functional, object-oriented |
---|---|
Developer | Open Source Community Apple Computer, Harlequin, Carnegie Mellon University |
First appeared | 1992 |
Stable release | 2022.1
/ November 28, 2022 |
Typing discipline | Strong, gradual |
Platform | IA-32, x86-64 |
OS | Cross-platform |
Filename extensions | dylan, lid |
Website | opendylan |
Major implementations | |
Open Dylan, Gwydion Dylan | |
Dialects | |
infix-dylan (AKA Dylan), prefix-dylan (historical only) | |
Influenced by | |
CLOS, ALGOL, Scheme, EuLisp | |
Influenced | |
Lasso, Python, Ruby, Julia[1] |
Dylan is a multi-paradigm programming language that includes support for functional and object-oriented programming (OOP), and is dynamic and reflective while providing a programming model designed to support generating efficient machine code, including fine-grained control over dynamic and static behaviors. It was created in the early 1990s by a group led by Apple Computer.
Dylan derives from Scheme and Common Lisp and adds an integrated object system derived from the Common Lisp Object System (CLOS). In Dylan, all values (including numbers, characters, functions, and classes) are first-class objects. Dylan supports multiple inheritance, polymorphism, multiple dispatch, keyword arguments, object introspection, pattern-based syntax extension macros, and many other advanced features. Programs can express fine-grained control over dynamism, admitting programs that occupy a continuum between dynamic and static programming and supporting evolutionary development (allowing for rapid prototyping followed by incremental refinement and optimization).
Dylan's main design goal is to be a dynamic language well-suited for developing commercial software. Dylan attempts to address potential performance issues by introducing "natural" limits to the full flexibility of Lisp systems, allowing the compiler to clearly understand compilable units, such as libraries.
Dylan derives much of its semantics from Scheme and other Lisps; some Dylan implementations were initially built within extant Lisp systems. However, Dylan has an ALGOL-like syntax instead of a Lisp-like prefix syntax.